[Steam聊天工具]Linux下,Steam中文输入的治标方案.

您所在的位置:网站首页 steam 输入法 [Steam聊天工具]Linux下,Steam中文输入的治标方案.

[Steam聊天工具]Linux下,Steam中文输入的治标方案.

2023-01-01 17:48| 来源: 网络整理| 查看: 265

感谢作者,代码很不错,不过为了让这段代码能在我的Archlinux上运行,花了我3个半小时...

一开始是报错(zenity:xxxx): GLib-GObject-CRITICAL **: xx:xx:xx.xxx: g_value_set_boxed: assertion 'G_VALUE_HOLDS_BOXED (value)' failed

于是我以为单纯是G_VALUE_HOLDS_BOXED的问题而已,搜了半天,有人说是libcurl的问题,还有的说是gtk3。于是去安装,可是发现都已经是最新版本。无果。

然后考虑是不是zenity当前版本不支持某些指令。结果当我输入zenity --help的时候,我发现它依然这么报错——换句话说,既然steam的依赖包里有zenity而且还能正常运行,而zenity依然报错,说明这个错虽然自称critical,但毕竟不是fatal。

再次检查,发现真正的问题在于后面一句:This option is not available. Please see --help for all possible usages.于是我仔细查看了zenity的相关用法。排查到--entry, --text, --title似乎都没问题(做了个试验,_first123=$(zenity --entry --text 'A' --title 's')),但只要输入中文就不行了。

遂改为英文_chat_input="$(zenity --entry --text 'Give It A Hot Key Binding. \n Input Here, Esc to quit:' --title 'steam IME helper')"

果然不再报错。但是实际使用出现了问题:只要是中文字符,全部变成”?“。

遂又寻得一文,说需要检查locale,设置LANG为en_US.utf8并重启会话。我调试半天才发现LANG是一个全局变量,用echo $LANG查看返回C。一脸懵。索性export LANG=en_US.utf8,用echo $LANG查看返回en_US.utf8,再次运行脚本,这回倒是正常了。可是重启命令行,LANG变量又变回了C。千脸懵X。但是灵机一动,索性在sh脚本前面添加一行export LANG=en_US.utf8重启命令行运行,工作正常,可喜可贺。

作为一个并不会编程的人debug到这一步已经快到极限了。不过下一步将sh文件绑定至热键并没有什么头绪,还请赐教。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3